package myjdbc;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @Auther: cty
 * @Date: 2020/1/21 20:38
 * @Description:  测试ORM 封装一条记录：JavaBean，封装多条记录：List<JavaBean>  推荐！！！
 * @version: 1.0
 */
public class JDBC_Demo10_SORM03 {
    public static void test01(){
        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        Emp emp = null;

        try {
            //1 加载数据库驱动  2 获取数据库连接
            conn = JDBCUtil.getMysqlConn();

            //3 操作数据库——查询一条数据记录
            ps = conn.prepareStatement("select empname,salary,age from emp where id=?");
            ps.setObject(1, 1);
            rs = ps.executeQuery();

            //4 处理返回数据——将返回的一条记录封装到一个JavaBean对象
            while(rs.next()){
//				System.out.println(rs.getString(1)+"--"+rs.getDouble(2)+"--"+rs.getInt(3));
                emp = new Emp(rs.getString(1),rs.getDouble(2),rs.getInt(3));
            }

        } catch (SQLException e) {
            e.printStackTrace();
        }finally{
            //5 关闭连接
            JDBCUtil.close(rs, ps, conn);
        }

        //打印获取数据
        System.out.println("姓名："+emp.getEmpname()+"\t薪水："+emp.getSalary()+"\t年龄："+emp.getAge());
    }

    public static void test02(){
        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        List<Emp> list= new ArrayList<Emp>();

        try {
            //1 加载数据库驱动  2 获取数据库连接
            conn = JDBCUtil.getMysqlConn();

            //3 操作数据库——查询一条数据记录
            ps = conn.prepareStatement("select empname,salary,age from emp where id>?");
            ps.setObject(1, 1);
            rs = ps.executeQuery();

            //4 处理返回数据——将返回的多条记录封装到一个JavaBean对象
            while(rs.next()){
                Emp emp = new Emp(rs.getString(1),rs.getDouble(2),rs.getInt(3));

                list.add(emp);
            }

        } catch (SQLException e) {
            e.printStackTrace();
        }finally{
            //5 关闭连接
            JDBCUtil.close(rs, ps, conn);
        }

        //遍打印获取数据
        for(Emp emp:list){
            System.out.println("姓名："+emp.getEmpname()+"\t薪水："+emp.getSalary()+"\t年龄："+emp.getAge());
        }
    }

    public static void main(String[] args) {
        test01();
        System.out.println("----------------------------------------");
        test02();
    }
}

/* res:
姓名：张三	薪水：30000.0	年龄：3
----------------------------------------
姓名：李四	薪水：40000.0	年龄：4
姓名：王五	薪水：50000.0	年龄：5
*/
